/**
 * Package:com.goldcitynet.service;
 * Id: SceneComponentRelationService.java,$v 1.2 2008/05/05 10:21:54$ yangchuan Exp 
 * Copyright(c) 2001-2005 www.afteryuan.com
 */
package com.afteryuan.engine.service;

import com.afteryuan.engine.model.Component;
import com.afteryuan.engine.model.Scene;
import com.afteryuan.engine.model.SceneComponentRelation;

import java.util.List;

/**
 * Service
 * <p/>
 * <p><a href="SceneComponentRelationService.java.html"><i>View Source</i></a></p>
 *
 * @author <a href="mailto:afteryuan@afteryuan.com">Author: yangchuan </a>
 * @version $Revision: 1.2 $
 */
public interface SceneComponentRelationService extends Service<SceneComponentRelation> {

    public List<SceneComponentRelation> getListByCondition(String sceneid, String order, Object... values);

    public List<SceneComponentRelation> getListByCondition(String sceneid, String order, Integer[] notLoad, Object... values);

    /**
     * 获取某个场景的刷新点列表
     *
     * @param sceneId
     * @return
     */
    List<SceneComponentRelation> getRefreshPositionInScene(String sceneId);

    public List<SceneComponentRelation> getTransportInScene(String sceneid, Object... values) throws Exception;

    public void removeAll(Scene scene);

    public void removeComponents(String id);

    /**
     * 寻找场景内所有组件关系
     *
     * @param scene  场景对象
     * @param layer  层
     * @param values 分页组件
     * @return List<SceneComponentRelation> 组件关系集合
     */
    List<SceneComponentRelation> listByScene(Scene scene, Integer layer, Object... values);

    /**
     * 寻找场景内所有组件关系
     *
     * @param scene  场景对象
     * @param layer  层
     * @param values 分页组件
     * @return List<SceneComponentRelation> 组件关系集合
     */
    SceneComponentRelation getBySceneAndDepth(String sceneid, Integer deep);
    
    
    List<Scene> listByComponent(Component comp);
}